/************************* 版权声明 *********************************
 * 
 * 版权所有：Apache License 2.0
 * 
 ************************* 版本声明 *********************************
 *@since jdk1.5
 *@version 0.1
 ************************* 变更记录 *********************************
 *
 * 创建者：bijiqiang Email:bijiqiang@gmail.com   创建日期： 2009-12-17
 * 创建记录：创建类结构。
 * 
 * 修改者：       修改日期：
 * 修改记录：
 *
 * 修改者：       修改日期：
 * 修改记录：
 * ……
 ************************* To  Do *********************************
 *
 * 1、实现所有未实现的方法（抛出UnsupportedOperationException的方法）。
 * 
 ************************* 随   笔 *********************************
 *
 * 
 * 
 ******************************************************************
 */

package com.realgodo.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class FileUpload {
	private static final Log log = LogFactory.getLog(FileUpload.class);

	public static final String COMMON_PATH = "common";

	public static String getFileName(String fileName) {
		String fileType = fileName.substring(fileName.lastIndexOf("."));
		return new SimpleDateFormat("yyyyMMddHHmmssSSS"
				+ (int) (Math.random() * 100)).format(Calendar.getInstance()
				.getTime())
				+ fileType;
	}

	/**
	 * 保存单一文件
	 * 
	 * @param fileName
	 * @param file
	 * @return
	 */
	public static String saveFile(String fileName, File file) {

		File fp = new File(getFilePath(fileName));
		if (!fp.exists()) {
			fp.mkdirs();
		}

		File tempFile = new File(fileName);
		try {
			FileInputStream fis = new FileInputStream(file);
			FileOutputStream fos = new FileOutputStream(tempFile);
			int index = 0;
			try {
				while ((index = fis.read()) != -1) {
					fos.write(index);
				}
			} catch (IOException ie) {
				log.error(ie);
			} finally {
				fis.close();
				fos.close();
			}
			return tempFile.getName();

		} catch (FileNotFoundException fnfe) {
			log.error(fnfe);
		} catch (IOException ioe) {
			log.error(ioe);
		}

		return null;
	}

	public static String getFilePath(String fileName) {
		int len = fileName.length();
		if (fileName != null && len > 0) {
			int index = fileName.lastIndexOf("\\");
			if (index == -1)
				index = fileName.lastIndexOf("/");
			if (index > 0 && index < len) {
				return fileName.substring(0, index);
			}
		}
		return fileName;
	}

	public static void deleFile(String servicePath) {
		if (null != servicePath)
			try {
				servicePath = servicePath.toString();
				java.io.File myDelFile = new java.io.File(servicePath);
				myDelFile.delete();

			} catch (Exception e) {
				e.printStackTrace();

			}
		else {

		}
	}
}
